﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CMS.IRepository;
using CMS.Repository;

namespace CMS.Factory
{
    /// <summary>
    /// IRepository Factory
    /// created by RebeccaNiu
    /// </summary>
    /// <remarks></remarks>
    public class Factory
    {
        /// <summary>
        /// Creates the student repository.
        /// </summary>
        /// <returns>StudentRepository</returns>
        /// <remarks></remarks>
        public IStudentRepository CreateStudentRepository()
        {
            return new StudentRepository();
        }
        /// <summary>
        /// Creates the class repository.
        /// </summary>
        /// <returns>ClassRepository</returns>
        /// <remarks></remarks>
        public IClassRepository CreateClassRepository()
        {
            return new ClassRepository();
        }
        /// <summary>
        /// Creates the course repository.
        /// </summary>
        /// <returns>CourseRepository</returns>
        /// <remarks></remarks>
        public ICourseRepository CreateCourseRepository()
        {
            return new CourseRepository();
        }
        /// <summary>
        /// Creates the course detail repository.
        /// </summary>
        /// <returns>CourseDetailRepository</returns>
        /// <remarks></remarks>
        public ICourseDetailRepository CreateCourseDetailRepository()
        {
            return new CourseDetailRepository();
        }
        /// <summary>
        /// Creates the department repository.
        /// </summary>
        /// <returns>DepartmentRepository</returns>
        /// <remarks></remarks>
        public IDepartmentRepository CreateDepartmentRepository()
        {
            return new DepartmentRepository();
        }
        /// <summary>
        /// Creates the level repository.
        /// </summary>
        /// <returns>LevelRepository</returns>
        /// <remarks></remarks>
        public ILevelRepository CreateLevelRepository()
        {
            return new LevelRepository();
        }

        /// <summary>
        /// Creates the teacher repository.
        /// </summary>
        /// <returns>TeacherRepository</returns>
        /// <remarks></remarks>
        public ITeacherRepository CreateTeacherRepository()
        {
            return new TeacherRepository();
        }
        /// <summary>
        /// Creates the courselist repository.
        /// </summary>
        /// <returns>CourseListRepository</returns>
        public ICourseListRepository CreateCourseListRepository()
        {
            return new CourseListRepository();
        }
        
    }
}
